(provide funcionesAeris)

(deffunction fueraDeRango (?dato ?max ?min)
	"Devuelve cierto si los dato < min || max =/= -1 && dato > max"
	(
		or 
        	(< ?dato ?min)
            (and (<> -1 ?max) (> ?dato ?max))
    ))

(deffunction leerMinimo ()
    "Lee un n�mero de la entrada estandar. En caso de leer algo que no sea un n�mero lo transforma en 0"
    (bind ?_leerMinimo (read))
    (if (or (integerp ?_leerMinimo) (floatp ?_leerMinimo)) then
        (return ?_leerMinimo)
    else
        (printout t "Lo leido no es un n�mero, se trata como 0" crlf)
        (return 0))
    )

(deffunction leerMaximo ()
    "Lee un n�mero de la entrada estandar. En caso de leer algo que no sea un n�mero lo transforma en 0"
    (bind ?_leerMaximo (read))
    (if (or (integerp ?_leerMaximo) (floatp ?_leerMaximo)) then
        (return ?_leerMaximo)
    else
        (printout t "Lo leido no es un n�mero, se trata como infinito" crlf)
        (return (get-member java.lang.Integer MAX_VALUE)))
    )

(deffunction leerSiONo ()
    "lee de la entrada estandar. Si lee 'si' devuelve 1, si lee 'no' devuelve 0 y en otro caso devuelve false"
	(bind ?_lectura (read))
	(if (eq ?_lectura si) then
        (return 1)
    else
        (if(eq ?_lectura no) then
        	(return 0)
       	else
        	(return FALSE)
        )
	)
)